MultiBulkReply{
  long l=Decoders.readLong(is);
  if (l > Integer.MAX_VALUE) {
  size=(int)l;
    replies=null;
    replies=new Reply[size];
    read(rd,is);
}
read{
  for (int i=index; i < size; i++) {
    replies[i]=rd.receive(is);
    index=i + 1;
}
MultiBulkReply{
  this.replies=replies;
}
data{ }
write{
  os.writeByte(MARKER);
  if (replies == null) {
    os.writeBytes(NEG_ONE_WITH_CRLF);
 else {
    os.writeBytes(numToBytes(replies.length,true));
    for (    Reply reply : replies) {
      reply.write(os);
}
asStringList{
  if (replies == null)   return null;
  List<String> strings=new ArrayList<String>(replies.length);
  for (  Reply reply : replies) {
    if (reply instanceof BulkReply) {
      strings.add(((BulkReply)reply).asString(charset));
  return strings;
}
asStringSet{
  if (replies == null)   return null;
  Set<String> strings=new HashSet<String>(replies.length);
  for (  Reply reply : replies) {
    if (reply instanceof BulkReply) {
      strings.add(((BulkReply)reply).asString(charset));
  return strings;
}
asStringMap{
  if (replies == null)   return null;
  int length=replies.length;
  Map<String,String> map=new HashMap<String,String>(length);
  if (length % 2 != 0) {
    Reply key=replies[i];
    Reply value=replies[i + 1];
    if (key instanceof BulkReply) {
      if (value instanceof BulkReply) {
        map.put(((BulkReply)key).asString(charset),((BulkReply)value).asString(charset));
}
toString{
  return asStringList(Charsets.UTF_8).toString();
}
